草庐IT

Java Generics - 类本身的子类?

全部标签

java - 将 Hibernate 实体重构为子类

我有一个当前使用Hibernate映射为数据库表中的实体的类。此类应重构为一个抽象类,其中包含一些其所有子类共有的字段。我正在使用注释来映射hibernate实体/关系类。我想要有关如何进行此重构的建议/变体。此外,关于如何将存储在数据库中的数据(用于future的抽象父类(superclass))移动到具体子类之一的一些建议。 最佳答案 首先,我将创建父类(superclass)并添加必要的注释。您必须在以下两者之间做出决定:每类一table策略每个类层次策略单表加入子类策略我认为JoinedSubclass可以在这里工作。您添加

java - 在它的抽象父类(super class)中使用子类的泛型类型?

在我的代码中有以下抽象父类(superclass)publicabstractclassAbstractClass{...}还有一些子类比如publicclassChildClassAextendsAbstractClass{...}publicclassChildClassBextendsAbstractClass{...}我正在寻找一种优雅的方式来以通用方式在抽象类中使用子类的通用类型(GenericTypeA、GenericTypeB等)。为了解决这个问题我目前定义了方法protectedabstractClassgetGenericTypeClass();在我的抽象类中并实现了

Java:如何复制一个对象,使其来自同一个子类?

我尝试使用一个简单的示例来更好地理解:我有一个类Tool和扩展类Tool的子类:Hammer,锯。两者都定义了一些字段,如weight,并且都用自己的实现覆盖方法getCost。Toolfirst_tool=newHammer();Toolsecond_tool=newSaw();我需要Tool类中的一个方法,它将复制任何工具,这样,first_tool_copy来自与first_tool相同的子类。我怎样才能使这成为可能?我需要这样的东西:/*Copytool,changeparametersofcopy,theoriginalwon'tchange*//*first_tool_co

java - 声明抛出异常的方法和该异常的子类

声明一个方法抛出异常有意义吗以及此异常的子类,例如IOException和FileNotFoundException?我猜它是为了通过调用方方法以不同方式处理这两个异常。但是,如果方法抛出仅最通用的异常,即IOException,是否可以同时处理这两种异常? 最佳答案 However,isitpossibletohandlebothexceptionsifthemethodthrowsonlythemostgenerici.eIOException?当然。您仍然可以分别捕获它们:try{methodThrowingIOExcepti

java - 类实例变量可以从 Java 的子类中排除吗?

这可能是个愚蠢的问题,但假设类Node有一个名为strength的实例变量。并且扩展Node的模拟类Episode不需要strength(其他子类需要)。还假设有很多Episode节点都存储了strength的实例。Java中有没有什么方法可以说“这个子类没有strength变量”?我有点明白为什么这可能是不允许的,但我想我会检查一下。更新:谢谢大家。正如我所怀疑的那样,这个问题的答案是“否”,但是使用Episode不需要的变量/方法创建Node的子类,然后将需要这些变量/方法的其他(子)子类连接到该新子类就可以了正是我想要的。 最佳答案

java - 在 Java 中克隆子类

我需要在Java中克隆一个子类,但在发生这种情况的代码中,我不知道子类类型,只知道父类(superclass)。执行此操作的最佳设计模式是什么?例子:classFoo{StringmyFoo;publicFoo(){}publicFoo(Fooold){this.myFoo=old.myFoo;}}classBarextendsFoo{StringmyBar;publicBar(){}publicBar(Barold){super(old);//copiesmyFoothis.myBar=old.myBar;}}classCopier{Foofoo;publicFoomakeCopy(

java - 如何强制子类调用抽象实现的方法

基本上,我想做的是强制子类调用一个抽象父类(superclass)方法(在子类中实现),所以我不必每次创建一个新的时都显式地写它子类。我曾在父类(superclass)的构造函数中写过一次,因为我希望它在每次实现时都强制执行。publicabstractclassSupahClass{publicSupahClass(){doStuff();//ItISexecutedwhenthesubclassconstructoriscalledinit();//NOTexecuted,eventhoughit'simplemented}privatevoiddoStuff(){...}prot

Java-在子类也需要使用的抽象类中使用常量

我有一个抽象类和2个子类。有4个常量与所有类相关。我打算将final放在抽象类中,但我知道final变量不是继承的?我是否必须在每个类中定义常量(似乎效率低下)?或者只是将常量设为即时变量(听起来不是个好主意)?我可以通过哪些方式解决这个问题? 最佳答案 如果在抽象类中定义,则以下内容将对您的所有子类可用。publicstaticfinalIntegerMYCONSTANT=42;或staticfinalIntegerMYCONSTANT=42;或protectedstaticfinalIntegerMYCONSTANT=42;第二

java - 包含同一父类(super class)的不同对象的 ArrayList - 如何访问子类的方法

您好,我想知道是否有解决我的问题的简单方法,我有一个ArrayList:ArrayListanimalList=newArrayList();/*IaddsomeobjectsfromsubclassesofAnimal*/animalList.add(newReptile());animalList.add(newBird());animalList.add(newAmphibian());它们都实现了一个方法move()-当调用move()时Bird会飞。我知道我可以使用这个访问父类(superclass)的通用方法和属性publicvoidfeed(IntegeranimalIn

java - 使用子类名访问父类静态字段不会加载子类?

classA{staticintsuper_var=1;static{System.out.println("super");}}classBextendsA{staticintsub_var=2;static{System.out.println("sub");}}publicclassDemo{publicstaticvoidmain(String[]args){System.out.println(B.super_var);}}输出是:super1这意味着子类不会加载或任何其他事情?它是如何工作的? 最佳答案 当您在子类引用上